package com.lzyyj.gmis.base.model;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

public interface ICurrentUser<PK extends Serializable> extends IUser<PK> {
	
	/**
	 * 获取角色列表
	 * @return
	 */
	public List<IRole<PK>> getRoles();
	
	/**
	 * 设置角色列表
	 * @param roles
	 */
	public void setRoles(List<IRole<PK>> roles);
	
	/**
	 * 获取有效权限列表
	 * @return
	 */
	public Set<IPurview<? extends Serializable>> getEffectivePurviews();
	
	/**
	 * 获取主要角色
	 * @return
	 */
	public IRole<PK> getMainRole();

	/**
	 * 设置主要角色
	 * @param role
	 */
	public void setMainRole(IRole<PK> role);

}
